home *** CD-ROM | disk | FTP | other *** search
- Program EnvDemo;
- {from PC Magazine page 270, June 10, 1986 issue by James W. Harrison of
- Richardson, TX. For PC/MS-dos computers ONLY. Works v2 TurboPascal
- }
- type envstr = String[128];
- var I : integer;
-
- function Environ (num:integer): EnvStr;
- var i, EnvSeg, EnvOff, StrLen : integer;
- begin
- EnvSeg := memw[cseg:$002c];
- EnvOff := 0;
- While (Num > 1) and (MemW[EnvSeg:EnvOff] <> 0) do begin
- While Mem [EnvSeg:EnvOff] <> 0 do
- EnvOff := EnvOff + 1;
- Num := Num - 1;
- EnvOff := EnvOff + 1;
- end; {while}
- StrLen := 0;
- While Mem [EnvSeg:EnvOff] <> 0 do begin
- StrLen := StrLen + 1;
- Environ [StrLen] := Chr (Mem[EnvSeg:EnvOff]);
- EnvOff := EnvOff + 1;
- end; {while}
- Environ[0] := Chr(strLen);
- end; { function Environ (num:integer) }
-
- function GetEnv (EnvVar:EnvStr): EnvStr;
- var i : integer;
- try : EnvStr;
- begin
- i := 1;
- repeat
- try := Environ(i);
- i := i + 1;
- until (length(try) = 0) or ((pos(EnvVar,Try) = 1)
- and (try[length(EnvVar) + 1] = '='));
- if length(try) <> 0 then
- delete(try,1,length(envVar) + 1)
- else try := '';
- GetEnv := Try;
- end; { function GetEnv (EnvVar:EnvStr) }
-
- function GetPath (num:integer): EnvStr;
- var PathStr : EnvStr;
- i : integer;
- begin
- PathStr := GetEnv ('PATH');
- while num > 1 do begin
- i := pos(';',PathStr);
- if i = 0 then i := length(PathStr);
- delete(PathStr, 1, i);
- Num := Num - 1;
- end;
- if pos(';',PathStr) <> 0 then
- PathStr := Copy (PathStr, 1, Pos (';',PathStr) - 1);
- GetPath := PathStr;
- end; { function GetPath (num:integer) }
-
- begin
- i := 1;
- while length(environ(i)) <> 0 do begin
- writeln(environ(i));
- i := i + 1;
- end;
- writeln;
- writeln ('PATH Setting is ',GetEnv('PATH'));
- writeln;
- i := 1;
- while length(getpath(i)) <> 0 do begin
- writeln(getpath(i));
- i := i + 1;
- end;
- END.